(function(){
    // Ext.data.AbstractStore 基础类
    //   Ext.data.Store: Ext.data.ArrayStore, Ext.data.DirectStore, Ext.data.JsonStore
    //   Ext.data.TreeStore
    
    // Ext.data.Store
    function testExtDataStore(){
        Ext.define("Person", {
            extend: "Ext.data.Model",
            fields:[
                {name: "name"},
                {age: "age"}
            ],
            proxy: {
                type: "memory"
            }
        });
        var store = Ext.create("Ext.data.Store", {
            model: "Person",
            // 数组
            data: [
                {name: "p1", age: 1},
                {name: "p2", age: 2}
            ],
            // 自动加载，一般memory用true，ajax不用
            autoLoad: true
        });
        // 数据已加载
        store.each(function(model){
            alert(model.get("name"));
        });
    }
    
    // Ext.data.Store 扩展说明
    function testExtDataStore1(){
        var store = Ext.create("Ext.data.Store", {
            // 替代model，直接根据字段集来映射
            fields: [
                {name: "name"},
                {age: "age"}
            ],
            // 自动加载时先加载data，如果没有再根据proxy加载
            proxy: {
                type: "ajax",
                url: webroot + "/lesson06/ajaxdataproxy"
            },
            // 自动加载，create完后会自动去代理加载一次
            autoLoad: true
        });
        // load是异步加载方法
        store.load(function(records, opertion, success){
            Ext.Array.each(records, function(model){
                alert(model.get("name"));
            });
            // 过滤数据
//          store.filter("name", "kk");
//          store.each(function(model){
//              alert(model.get("name"));
//          });
            // 查找数据 fieldName value(正则) anyMatch(全部查找) caseSensitive(区别大小写) exactMatch(精确匹配)
            var index = store.find("name", "kk", 0, false, true, false);
            alert(index);
        });
    }
    
    var webroot;
    
    Ext.onReady(function(){
        webroot = Ext.get("webroot").getValue();
//        testExtDataStore();
//        testExtDataStore1();
    });
})();